package com.nbut.filesystem;

import java.io.*;

/**
 * 登陆系统
 */
public class Login {

    String userAddr;

    /**
     * 初始化登陆系统
     * @param baseAddr 文件系统根目录
     */
    public Login(String baseAddr){
        userAddr = baseAddr+"\\User\\";
        File dir = new File(userAddr);
        if(dir.mkdirs()){
            System.out.println("用户目录创建成功!");
        }
    }

    /**
     * 登陆账号
     * @param username 用户名
     * @param password 密码
     * @return 用户实体
     * @throws IOException 连接文件流错误和读取错误时会抛出
     * @throws ClassNotFoundException 读取对象失败的时候会抛出
     */
    public User login(String username,String password) throws IOException, ClassNotFoundException {
        File userFile = new File(userAddr + username+".user");
        if(userFile.exists()) {
            User user = UserAction.getUser(userAddr, username);
            if (user != null){
                if (password.equals(user.getPassword())) {
                    return user;
                }
            }
        }
        return null;
    }

    /**
     * 注册账号
     * @param username 用户名
     * @param password 密码
     * @return 是否注册成功
     * @throws IOException 写入文件时发生错误时会抛出
     */
    public boolean register(String username,String password) throws IOException {
        File userFile = new File(userAddr + username+".user");
        User user = new User(username,password);
        if(!userFile.exists()) {
            UserAction.createUser(userAddr, user);
            return true;
        }
        return false;
    }
}
